home *** CD-ROM | disk | FTP | other *** search
- /*
- * CD-ROM BOIS library for TOWNS
- * ver 1.0 last up-date 93/2/25 by Shinwa
- */
-
- struct TIMEADRS {
- char min;
- char sec;
- char frame;
- };
-
- /* CD-ROM BIOS ERROR Information */
- #define CDERR0 0x01 /* drive not ready */
- #define CDERR1 0x02 /* parameter error */
- #define CDERR2 0x04 /* drive not exist */
- #define CDERR3 0x08 /* abort Please retry */
- #define CDERR4 0x10 /* media error */
- #define CDERR5 0x20 /* hard error */
- #define CDERR7 0x80 /* media exchanged */
- #define DEVERR 0x100 /* irregular devece number */
- #define DEVPLY 0x102 /* now cd-da playing */
- #define DEVPAUSE 0x104 /* already cd stopped */
- #define DEVNPAUSE 0x108 /* cd not stop */
-
-
- /* ドライブステータス情報の読み取り */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, 0以外 -> エラー
- * sector_size <- 2048 , 2336 or 2340 (sector size)
- * sector_max <- 最大論理セクタ数
- */
- int cdr_status(int device_no, int *sector_size, long int *sector_max);
-
- /* ドライブモードの読み取り */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, 0以外 -> エラー
- * sector_size <- 2048 , 2336 or 2340 (bytes / sector)
- */
- int cdr_rdrvmd(int device_no, int *sector_size);
-
- /* CD-ROM ドライブの回転停止時間の設定 */
- /* return 0 -> 正常終了
- * 0以外 -> エラー
- * 注意!! 次のアクセス後有効になります.
- */
- int cdr_stptime(int dev_no, int stop_time);
-
- /* コンパクト情報の読み取り */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * cd_type: 1 -> CD-DA, 2 -> data, 3 -> CD-DA+data
- * start_track: 先頭トラック(曲)番号
- * end_track: 最終トラック(曲)番号
- * struct TIMEADRS {
- * char min;
- * char sec;
- * char frame;
- * } *track_times, 各トラック毎の演奏時間(最大99曲分必要)
- * *disk_all_time; ディスク内の演奏時間
- * 曲の最後まで演奏する場合は,終了時間にディスク内演奏時間-1を設定する.
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_cdinfo(int device_no, int *cd_type, int *start_track, int *end_track,
- struct TIMEADRS track_times[], struct TIMEADRS *disk_all_time);
-
- /* ドライブモードの設定 */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * sector_size: セクターサイズ(2048, 2336, or 2340)
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_sdrvmd(int device_no, int sector_size);
-
- /* シリンダー0へのシーク */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_restore(int device_no);
-
- /* データの読み取り(論理セクタ指定) */
- /*
- * device_no: device number (Towns CD-ROM -> 0)
- * sector_number: 論理セクタ番号
- * buffer: 転送アドレス
- * count: 読み込みセクタ数
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
-
- int cdr_read(int device_no, long int sector_number, char *buffer, unsigned int count);
-
- int cdr_read2(int device_no, long int sector_number, char *buffer, unsigned int count);
-
- /* 指定位置へのシーク(論理セクタ指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * sector_number: 論理セクター番号
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_seek(int device_no, long int sector_number);
-
- /* データの読み取り(時間指定) */
- /*
- * device_no: device number (Towns CD-ROM -> 0)
- * time: 時間
- * buffer: 転送アドレス
- * count: 読み込みセクタ数
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
-
- int cdr_tread(int device_no, struct TIMEADRS *time, char *buffer, unsigned int count);
-
- int cdr_tread2(int device_no, struct TIMEADRS *time, char *buffer, unsigned int count);
-
- /* 指定位置へのシーク(時間指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * time: 時間
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_tseek(int device_no, struct TIMEADRS *time);
-
- /* 音楽演奏スタート(時間指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * start_time: 演奏開始時間
- * end_time: 演奏終了時間
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_mtplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time);
-
- /* 音楽演奏情報の読み取り(時間指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * start_time: 演奏開始時間
- * end_time: 演奏終了時間
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_rmtplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time);
-
- /* 音楽演奏ストップ */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_mstop(int device_no);
-
- /* 音楽演奏状態の読み取り(時間指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * status: 演奏状態 1 -> 演奏中
- * music_num: 現在演奏中の曲番号
- * track_time: トラック内演奏時間
- * disk_time: ディスク内演奏時間
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_mphase(int device_no, int *status, int *music_num, struct TIMEADRS *track_time, struct TIMEADRS *disk_time);
-
- /* 音楽演奏一時停止 */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, DEVPAUSE -> 既に停止中, それ以外 -> エラー
- */
- int cdr_pause(int device_no);
-
- /* 音楽演奏一時停止解除 */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * return: 0 -> 正常終了, DEVNPAUSE -> 停止状態ではない, それ以外 -> エラー
- */
- int cdr_continue(int device_no);
-
- /* 音楽演奏スタート(時間指定 リピート回数指定) */
- /*
- * decice_no: device number (Towns CD-ROM -> 0)
- * start_time: 演奏開始時間
- * end_time: 演奏終了時間
- * count: リピート回数
- * return: 0 -> 正常終了, 0以外 -> エラー
- */
- int cdr_mtrplay(int device_no, struct TIMEADRS *start_time, struct TIMEADRS *end_time, unsigned char count);
-
-